ЛАБА7

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ЧНТУ
Факультет:
РТ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
СА 12
Варіант:
8

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут ІКНІ Кафедра ІСМ ЗВІТ про виконання лабораторної роботи №7 на тему: «Робота з динамічними масивами» з предмету «Програмування та алгоритмічні мови» Мета роботи: навчитися виділяти та використовувати динамічні масиви даних. Хід роботи Завдання 1. Пишу програму для виконання дій над динамічним двовимірним масивом згідно з своїм варіантом (Варіант 1). Написати програму, яка впорядковує за спаданням елементи головниї діагоналі квадратної матриці. Реалізую доступ до елементів масива двома способами: за допомогою індексів та вказівників. Кожний спосіб реалізую окремою функцією. Алгоритм формування початкового масива реалізую двома способами: за допомогою введення даних з клавіатури та випадкової генерації чисел. В окремій фнкції передбачаю виділення пам’яті під динамічний масив функціями malloc, calloc та new.Кожний спосіб реалізую окремою функцією. Також вивожу на екран елементи початкового масива, а також змінений. В підпрограмі не використовую глобальні змінні. Інформація у підпрограмі передається лише за допомогою параметрів. Введення даних, виведення даних і виконання дій над масивами реалізую в окремих функціях. У головній програмі виконую їхній виклик. Введення-виведення даний супроводжуються відповідними повідомленнями. Код програми першого завдання: #include<conio.h> #include<math.h> #include <clocale> #include<iostream> #include <time.h> #include <iomanip> using namespace std; void newMemoryAllocation(int**&a, int rowCount) { a = new int*[rowCount]; for (int i = 0; i < rowCount; i++) a[i] = new int[rowCount]; } void mallocMemoryAllocation(int**&a, int rowCount) { a = (int**)calloc(rowCount,sizeof(int*)); for (int i = 0; i < rowCount; i++) a[i] = (int*)calloc(rowCount,sizeof(int)); } void callocMemoryAllocation(int**&a, int rowCount) { a = (int**)malloc(rowCount*sizeof(int*)); for (int i = 0; i < rowCount; i++) a[i] = (int*)malloc(rowCount*sizeof(int)); } void input(int**&a, int rowCount) { for (int i = 0; i < rowCount; i++) { for (int j = 0; j < rowCount; j++) { std::cout << "a[" << i << "][" << j << "] = "; std::cin >> a[i][j]; } } } void random(int**&a, int rowCount) { for (int i = 0; i < rowCount; i++) { for (int j = 0; j < rowCount; j++) { a[i][j] = rand() % 200 - 100; } } } void output(int**a, int rowCount) { for (int i = 0; i < rowCount; i++) { for (int j = 0; j < rowCount; j++) std::cout << a[i][j] << "\t"; std::cout << std::endl; } } void sort(int**&a, int rowCount) { int s = 0; for (int i = 0; i < rowCount; i++) for (int j = 0; j < rowCount-1; j++) if (a[j][j]<a[j+1][j+1]) { int temp = a[j+1][j+1]; a[j + 1][j + 1] = a[j][j]; a[j][j] = temp; } } int main() { setlocale(LC_CTYPE, "ukr"); srand(time(NULL)); char check = 0; char check1 = 0; int **a=NULL; int rowCount; cout << "Введіть кільість рядків: "; cin >> rowCount; int choice = 0; std::cout << "введiть 1, якщо хочете викликати calloc, 2 якщо malloc, 3 якщо new \n"; std::cin >> check; if (check == '1') callocMemoryAllocation(a, rowCount); else if (check == '2') mallocMemoryAllocation(a, rowCount); else newMemoryAllocation(a, rowCount); std::cout << "введiть 1, якщо хочете вводити власноруч, якщо нi то будь-який інший символ \n"; std::cin >> check1; if (check1 == '1') input(a, rowCount); else random(a, rowCount); output(a, rowCount); sort(a, rowCount); cout << "\n\n"; output(a, rowCount); _getch(); } Рис 1. Результат виконання першої програми Блок-схема до першого завдання: Рис 2. Алгоритм виконання програми Завдання 2. Пишу програму для виконання дій над динамічним двовимірним масивом згідно з своїм варіантом (Варіант 1). Задано двовимірний масив цілих числез діапазону (-16,…,22). Знайти всі елементи кратні 3 або всі, крім від’ємних. Реалізую доступ до елементів масива двома способами: за допомогою індексів та вказівників. Кожний...
Антиботан аватар за замовчуванням

16.02.2017 20:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини